﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BusinessLayer.Interfaces;
using DataLayer.EF;
using BusinessLayer.Clases_BO;
using EntityLayer;

namespace BusinessLayer.Implementacion
{
    public class FacadeInformacionClientesVisitarActualizar : IFacadeInformacionClientesVisitarActualizar
    {
        public List<T_Cliente> ListarCliente(Int64? nu_ruc = null)
        {
            return new clsT_ClienteBO().Listar(nu_ruc);
        }
        public List<T_Servicio> ListarServicio(int? co_servicio = null)
        {
            return new clsT_ServicioBO().Listar(co_servicio);
        }
        public List<T_Producto> ListarProducto(int? co_producto = null)
        {
            return new clsT_ProductoBO().Listar(co_producto);
        }
        public List<T_Presupuesto> ListarPresupuesto(int? co_presupuesto = null)
        {
            return new clsT_PresupuestoBO().Listar(co_presupuesto);
        }
        public IEnumerable<object> GenerarListaOportunidades_DetalleVisita(long? nu_ruc, int? co_servicio, int? co_producto, int? co_presupuesto, String no_sector)
        {
            return new clsT_OportunidadBO().GenerarListaOportunidades_DetalleVisita(nu_ruc, co_servicio, co_producto, co_presupuesto, no_sector);
        }
        public int? ObtenerUltimoContactoOportunidad()
        {
            return new clsT_Contacto_OportunidadBO().ObtenerUltimoContactoOportunidad();
        }
        public List<T_Contacto> ListarContactos(Int32? co_contacto = null)
        {
            return new clsT_ContactoBO().Listar(co_contacto);
        }
        public bool InsertarOportunidad(T_Oportunidad obj)
        {
            return new clsT_OportunidadBO().Insertar(obj);
        }
        public bool ModificarContacto(T_Contacto obj)
        {
            return new clsT_ContactoBO().Modificar(obj);
        }
        public IEnumerable<Object> ListarProductoxServicio(int co_servicio)
        {
            return new clsT_ProductoBO().listarxServicio(co_servicio);
        }
        public List<T_Oportunidad> ListarOportunidad(int? co_oportunidad = null)
        {
            return new clsT_OportunidadBO().Listar(co_oportunidad);
        }
        public bool ModificarOportunidad(T_Oportunidad obj)
        {
            return new clsT_OportunidadBO().Modificar(obj);
        }
        public bool InsertarClienteServicio(T_Cliente_Servicio obj)
        {
            return new clsT_Cliente_ServicioBO().Insertar(obj);
        }
        public List<T_Cliente_Servicio> ListarClienteServicio(long? nu_ruc = null, int? co_servicio = null)
        {
            return new clsT_Cliente_ServicioBO().Listar(nu_ruc, co_servicio);
        }
        public bool ModificarPresupuesto(T_Presupuesto obj)
        {
            return new clsT_PresupuestoBO().Modificar(obj);
        }
        public List<T_Contacto_Oportunidad> ListarContactoOportunidad(int? co_contacto = null, int? co_oportunidad = null)
        {
            return new clsT_Contacto_OportunidadBO().Listar(co_contacto, co_oportunidad);
        }
        public List<T_Contacto_Oportunidad> ListarContactoOportunidad(int? co_cont_opor = null)
        {
            return new clsT_Contacto_OportunidadBO().Listar(co_cont_opor);
        }
        public bool ModificarContactoOportunidad(T_Contacto_Oportunidad obj)
        {
            return new clsT_Contacto_OportunidadBO().Modificar(obj);
        }
        public bool EliminarContactoOportunidad(T_Contacto_Oportunidad obj)
        {
            return new clsT_Contacto_OportunidadBO().Eliminar(obj);
        }
        public List<Esfuerzo> HistorialEsfuerzo(long? nu_ruc_cliente, int? co_producto)
        {
            return new clsT_OportunidadBO().HistorialEsfuerzo(nu_ruc_cliente, co_producto);
        }
        public List<T_Actividad> AvanceEsfuerzo(long? nu_ruc, int? co_servicio, int? co_producto, int? co_presupuesto)
        {
            return new clsT_OportunidadBO().AvanceEsfuerzo(nu_ruc, co_servicio, co_producto, co_presupuesto);
        }
        public List<T_Contacto> ListarContactosxEmpresa(Int64? nu_ruc_cliente)
        {
            return new clsT_ContactoBO().ListarxEmpresa(nu_ruc_cliente);
        }
        public bool InsertarContactoOportunidad(T_Contacto_Oportunidad obj)
        {
            return new clsT_Contacto_OportunidadBO().Insertar(obj);
        }
        public bool InsertarOportunidadPresupuesto(T_Oportunidad_Presupuesto obj)
        {
            return new clsT_Oportunidad_PresupuestoBO().Insertar(obj);
        }



    }
}
